home *** CD-ROM | disk | FTP | other *** search
/ Apple WWDC 1996 / WWDC96_1996 (CD).toast / Technology Materials / MacOS 8 Resources / Developer Tools / Mac OS 8 Interfaces & Libraries / Interfaces / CIncludes / DriverSupport.h < prev    next >
C/C++ Source or Header  |  1996-05-01  |  6KB  |  203 lines

  1. /*
  2.      File:        DriverSupport.h
  3.  
  4.      Contains:    Driver Support Interfaces.
  5.  
  6.      Version:    Technology:    Sustem 7.5 and 8
  7.                  Release:    Universal Interfaces 3.0d3 on Copland DR1
  8.  
  9.      Copyright:    © 1984-1996 by Apple Computer, Inc.  All rights reserved.
  10.  
  11.      Bugs?:        If you find a problem with this file, send the file and version
  12.                  information (from above) and the problem description to:
  13.  
  14.                      Internet:    apple.bugs@applelink.apple.com
  15.                      AppleLink:    APPLE.BUGS
  16.  
  17. */
  18. #ifndef __DRIVERSUPPORT__
  19. #define __DRIVERSUPPORT__
  20.  
  21. #ifndef __CONDITIONALMACROS__
  22. #include <ConditionalMacros.h>
  23. #endif
  24. #ifndef __TYPES__
  25. #include <Types.h>
  26. #endif
  27. #ifndef __KERNEL__
  28. #include <Kernel.h>
  29. #endif
  30. #if FOR_SYSTEM8_PREEMPTIVE
  31. #ifndef __TIMING__
  32. #include <Timing.h>
  33. #endif
  34. #endif
  35. #ifndef __DEVICES__
  36. #include <Devices.h>
  37. #endif
  38. #ifndef __OSUTILS__
  39. #include <OSUtils.h>
  40. #endif
  41. #ifndef __MACHINEEXCEPTIONS__
  42. #include <MachineExceptions.h>
  43. #endif
  44.  
  45. #ifdef __cplusplus
  46. extern "C" {
  47. #endif
  48.  
  49. #if PRAGMA_IMPORT_SUPPORTED
  50. #pragma import on
  51. #endif
  52.  
  53. #if PRAGMA_ALIGN_SUPPORTED
  54. #pragma options align=mac68k
  55. #endif
  56.  
  57. #define    kAAPLDeviceLogicalAddress "AAPL,address"
  58. typedef LogicalAddress *DeviceLogicalAddressPtr;
  59. #if FOR_SYSTEM7_ONLY
  60.  
  61. enum {
  62.     durationMicrosecond            = -1L,                            /* Microseconds are negative*/
  63.     durationMillisecond            = 1L,                            /* Milliseconds are positive*/
  64.     durationSecond                = 1000L,                        /* 1000 * durationMillisecond*/
  65.     durationMinute                = 60000L,                        /* 60 * durationSecond,*/
  66.     durationHour                = 3600000L,                        /* 60 * durationMinute,*/
  67.     durationDay                    = 86400000L,                    /* 24 * durationHour,*/
  68.     durationNoWait                = 0L,                            /* don't block*/
  69.     durationForever                = 0x7FFFFFFF                    /* no time limit*/
  70. };
  71.  
  72. #define kCurrentAddressSpaceID ((AddressSpaceID) -1)
  73. #endif
  74.  
  75. enum {
  76.     k8BitAccess                    = 0,                            /* access as 8 bit*/
  77.     k16BitAccess                = 1,                            /* access as 16 bit*/
  78.     k32BitAccess                = 2                                /* access as 32 bit*/
  79. };
  80.  
  81. #if FOR_SYSTEM7_ONLY
  82. typedef UnsignedWide Nanoseconds;
  83. #endif
  84. extern void BlockCopy(const void *srcPtr, void *destPtr, Size byteCount);
  85.  
  86. extern LogicalAddress PoolAllocateResident(ByteCount byteSize, Boolean clear);
  87.  
  88. extern OSStatus PoolDeallocate(LogicalAddress address);
  89.  
  90. extern ByteCount GetLogicalPageSize(void );
  91.  
  92. extern ByteCount GetDataCacheLineSize(void );
  93.  
  94. extern OSStatus FlushProcessorCache(AddressSpaceID spaceID, LogicalAddress base, ByteCount length);
  95.  
  96. extern void SynchronizeIO(void );
  97.  
  98. extern LogicalAddress MemAllocatePhysicallyContiguous(ByteCount byteSize, Boolean clear);
  99.  
  100. extern OSStatus MemDeallocatePhysicallyContiguous(LogicalAddress address);
  101.  
  102. #if FOR_SYSTEM7_ONLY
  103. extern AbsoluteTime UpTime(void );
  104.  
  105. extern void GetTimeBaseInfo(UInt32 *minAbsoluteTimeDelta, UInt32 *theAbsoluteTimeToNanosecondNumerator, UInt32 *theAbsoluteTimeToNanosecondDenominator, UInt32 *theProcessorToAbsoluteTimeNumerator, UInt32 *theProcessorToAbsoluteTimeDenominator);
  106.  
  107. extern Nanoseconds AbsoluteToNanoseconds(AbsoluteTime absoluteTime);
  108.  
  109. extern Duration AbsoluteToDuration(AbsoluteTime absoluteTime);
  110.  
  111. extern AbsoluteTime NanosecondsToAbsolute(Nanoseconds nanoseconds);
  112.  
  113. extern AbsoluteTime DurationToAbsolute(Duration duration);
  114.  
  115. extern AbsoluteTime AddAbsoluteToAbsolute(AbsoluteTime absoluteTime1, AbsoluteTime absoluteTime2);
  116.  
  117. extern AbsoluteTime SubAbsoluteFromAbsolute(AbsoluteTime leftAbsoluteTime, AbsoluteTime rightAbsoluteTime);
  118.  
  119. extern AbsoluteTime AddNanosecondsToAbsolute(Nanoseconds nanoseconds, AbsoluteTime absoluteTime);
  120.  
  121. extern AbsoluteTime AddDurationToAbsolute(Duration duration, AbsoluteTime absoluteTime);
  122.  
  123. extern AbsoluteTime SubNanosecondsFromAbsolute(Nanoseconds nanoseconds, AbsoluteTime absoluteTime);
  124.  
  125. extern AbsoluteTime SubDurationFromAbsolute(Duration duration, AbsoluteTime absoluteTime);
  126.  
  127. extern Nanoseconds AbsoluteDeltaToNanoseconds(AbsoluteTime leftAbsoluteTime, AbsoluteTime rightAbsoluteTime);
  128.  
  129. extern Duration AbsoluteDeltaToDuration(AbsoluteTime leftAbsoluteTime, AbsoluteTime rightAbsoluteTime);
  130.  
  131. extern Nanoseconds DurationToNanoseconds(Duration theDuration);
  132.  
  133. extern Duration NanosecondsToDuration(Nanoseconds theNanoseconds);
  134.  
  135. #endif
  136. extern OSErr PBQueueInit(QHdrPtr qHeader);
  137.  
  138. extern OSErr PBQueueCreate(QHdrPtr *qHeader);
  139.  
  140. extern OSErr PBQueueDelete(QHdrPtr qHeader);
  141.  
  142. extern void PBEnqueue(QElemPtr qElement, QHdrPtr qHeader);
  143.  
  144. extern OSErr PBEnqueueLast(QElemPtr qElement, QHdrPtr qHeader);
  145.  
  146. extern OSErr PBDequeue(QElemPtr qElement, QHdrPtr qHeader);
  147.  
  148. extern OSErr PBDequeueFirst(QHdrPtr qHeader, QElemPtr *theFirstqElem);
  149.  
  150. extern OSErr PBDequeueLast(QHdrPtr qHeader, QElemPtr *theLastqElem);
  151.  
  152. extern char *CStrCopy(char *dst, const char *src);
  153.  
  154. extern StringPtr PStrCopy(StringPtr dst, ConstStr255Param src);
  155.  
  156. extern char *CStrNCopy(char *dst, const char *src, UInt32 max);
  157.  
  158. extern StringPtr PStrNCopy(StringPtr dst, ConstStr255Param src, UInt32 max);
  159.  
  160. extern char *CStrCat(char *dst, const char *src);
  161.  
  162. extern StringPtr PStrCat(StringPtr dst, ConstStr255Param src);
  163.  
  164. extern char *CStrNCat(char *dst, const char *src, UInt32 max);
  165.  
  166. extern StringPtr PStrNCat(StringPtr dst, ConstStr255Param src, UInt32 max);
  167.  
  168. extern void PStrToCStr(char *dst, ConstStr255Param src);
  169.  
  170. extern void CStrToPStr(Str255 dst, const char *src);
  171.  
  172. extern SInt16 CStrCmp(const char *s1, const char *s2);
  173.  
  174. extern SInt16 PStrCmp(ConstStr255Param str1, ConstStr255Param str2);
  175.  
  176. extern SInt16 CStrNCmp(const char *s1, const char *s2, UInt32 max);
  177.  
  178. extern SInt16 PStrNCmp(ConstStr255Param str1, ConstStr255Param str2, UInt32 max);
  179.  
  180. extern UInt32 CStrLen(const char *src);
  181.  
  182. extern UInt32 PStrLen(ConstStr255Param src);
  183.  
  184. extern OSStatus DeviceProbe(void *theSrc, void *theDest, UInt32 AccessType);
  185.  
  186. extern OSStatus DelayForHardware(AbsoluteTime absoluteTime);
  187.  
  188.  
  189. #if PRAGMA_ALIGN_SUPPORTED
  190. #pragma options align=reset
  191. #endif
  192.  
  193. #if PRAGMA_IMPORT_SUPPORTED
  194. #pragma import off
  195. #endif
  196.  
  197. #ifdef __cplusplus
  198. }
  199. #endif
  200.  
  201. #endif /* __DRIVERSUPPORT__ */
  202.  
  203.